前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >面向对象基础

面向对象基础

作者头像
晚上没宵夜
发布2020-03-10 10:46:30
2420
发布2020-03-10 10:46:30
举报
文章被收录于专栏:Howl同学的学习笔记

1. 构造方法

  • public + 类名,没有返回值也没有void
  • 编译器会自动给我们生成默认的构造方法
  • 若有自定义构造函数,那么编译器就不会帮我们生成默认构造,所以提倡在写自定义构造时把默认构造写上
  • 一个构造方法可以调用其他构造方法,这样做的目的是便于代码复用
  • this(),super()才是构造函数中必须第一行,而this,super不是,而main方法中不用调用this
  • 构造方法不能被static、final、synchronized、abstract、native修饰,但public、private、protected可以
代码语言:javascript
复制
public class User {
    
    private int age;
    private String name;
    
    //默认构造
    public User(){
        
    }
    
    //自定义构造
    public User(int age, String name) {
        //调用父类默认构造,一般自动加上,可以省去不写
        super();
        this.age = age;
        this.name = name;
    }
}

2. 修饰符访问范围

本类内部

本包

子类继承关系

外部包且没关系

public

protected

×

default

×

×

private

×

×

×

3. 继承

  • 继承父类已有的字段和方法,实现代码复用,我们只需写额外代码即可
  • java只允许单继承,所有类直接或简介继承Object,但Object没有父类
  • 接口没有继承Object
  • 构造方法不能被继承,子类不会继承任何父类的构造方法,只是在创建的时候会默认调用父类构造
  • instanceof只会判断是否给类类型,不考虑继承关系
  • final修饰类,则类不能被继承
  • 构造方法不是类的成员方法
代码语言:javascript
复制
public class User2 extends User {
}

4. 方法重载

一个类中定义多个方法,这些方法名字必须相同,返回类型可以相同也可以不相同,但参数类型,顺序,个数必须不同

代码语言:javascript
复制
public class User {

    public String hello(){
        return "hello";
    }
    public String hello(int i){
        return "hello" + i;
    }
    public String hello(int i,String str){
        return str + i;
    }
}

5. 方法重写

  • 发生在继承关系中,方法重写应遵循“两同两小一大”原则:
    • “两同”:即方法名相同,形参列表相同;
    • “两小”:子类方法声明抛出的异常比父类方法声明抛出的异常更小或者相等,子类返回值小于等于父类;
    • “一大”:子类方法的访问修饰符应比父类方法更大或相等
  • final修饰的方法不能被重写,但可以重载

6. 多态

一种事物的多种存在形态,分为编译时多态(方法的重载),和运行时多态(向上下转型)

  • 继承
  • 重写
  • 向上转型

7. 封装

把数据封装起来,对外提供接口使之与外部发生联系,用户无需知道对象内部的细节

代码语言:javascript
复制
public class User {
    
    private int age;
    private String name;
    
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-01-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 构造方法
  • 2. 修饰符访问范围
  • 3. 继承
  • 4. 方法重载
  • 5. 方法重写
  • 6. 多态
  • 7. 封装
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档