封装和继承(2019年10月15日)

构造方法不能够有返回值,如果有返回值的话就变成成员方法了

在调试的时候可以用断点来调试

封装:隐藏对象的属性和方法
可以用访问修饰符来修改
常见的访问修饰符:public private default protect

属性变成私有的之后,在别的类中就不能够用对象名.属性的方法来使用(改变和获取),可以用public的方法来修改和获取属性的值(get 和set方法)

在定义中,属性和方法没有先后之分(像这种类 我们一般叫做JvabBeans 或者pojo)

继承:子类继承父类的几乎所有内容(属性和方法)
关键字:extends

如果没有给一个类定义父类,那么系统会默认加上一个extends Object,也就是说所有的类的是Object的子类

1.所有类都是Object的子类
2.在Java中只能够单继承

重写:当子类对继承过来的方法不满意的时候,可以重新定义一个一样的方法来覆盖父类的方法
关键字:@Override

当重写了父类的方法之后,调用的是子类重写过后的方法,不会在调用父类的方法
但是在重写的方法中,我们可以通过super.方法名的形式来调用父类的方法

当创建子类对象的时候,会先初始化父类的对象,(默认是调用父类的无参构造)如果没有显示的调用,那么就得在子类的构造方法中添加super();注意:类名可以不用写,而且这个super();要写在地第一行的位置

重载(overload):是根据参数列表来决定匹配执行那个方法的
重载有两种形式:1.在用一个类中,两个除了参数列表不一样的方法
2.在子类中,存在一个和父类除了参数列表不一样外,其余都一样的方法

如果同一个类有两个构造方法:

public Phone(int age){
this.age=age;
}
public Phone(int age,String name){
this(age);
this,name=name;
}

这样也可以
this()这个表示的是本类中的其他构造方法,当表示其他的构造方法的时候,必须要放在第一行的位置

每日一练
1,如何实现数据的封装?
把属性或者方法的访问修饰符改为私有的,通过公开的成员方法和构造方法来使用

2,final的用法?(面试题)
1.final用来修饰变量得时候,表示常量
2.final用来修饰类的时候表示这个类不能被继承
3.final用来修饰方法的时候表示这个方法不能被重写
3,重载跟重写有什么区别?(面试题)
重载是除了参数列表不相同的多种方法
重写是在继承的时候,子类不满足父类的方法,写一个新的方法去覆盖原来的方法(参数列表要一样),只
能写一次
4,当调用子类构造方法时是否会调用父类的构造方法?如果会,会先调用谁的构造方法?

会调用父类的方法,如果没有显示的调用,就会默认调用无参的构造方法

5,子类如何显示调用父类的成员方法?子类如果显示调用父类的构造方法?

super.父类成员方法 super()

 

posted @ 2019-10-15 19:24  小星星i  阅读(115)  评论(0编辑  收藏  举报