java笔记 chapter4 继承,super,覆盖和重载

继承extends
单继承性
构造方法不能被继承
关键字super
方法重载
多态
instanceof运算符:用来判断某个变量是不是。。的一个实例
 
继承:
1,单继承性
2,构造方法是不能被继承的:构造方法是个new关键字创建实例并分配内存空间后的一个回调方法,
3,父类里private的属性和方法是不能被继承的(换言之,子类是无法访问父类private的属性和方法。除非对属性设置getter、setter,或者把private权限改成其他的protected,public或者不写权限。)
4,初始化子类必先初始化他的父类。初始化一个类必先初始化他的属性。
 
关键字super:
1,点取父类中被子类隐藏的数据成员
2,区分同名变量
     如果父类有一个name属性 子类也有一个name  在子类一个方法中syso(name)那么输出结果是子类的,如果想输出的是父类的name那么就要使用super.name
3,作为方法名,调用父类的构造方法
     如果父类创建了一个有参并且没有无参构造方法,那么子类运行时必先在子类构造方法中显示的调用父类的构造方法 super关键字必须在第一行。
 
覆盖重写Override:
     在类继承中,子类可以修改从父类处继承来的方法,也就是说子类里的方法可以跟父类里的某个方法的名称,返回类型和参数列表完全相同,通过创建子类的实例对象调用这个方法时,将会调用子类里面定义的方法,相当于把福来的那个方法给覆盖了,这也是面向对象编程的多态的表现。
 
     覆盖的规则:
(1):覆盖方法的返回类型、方法名称、参数列表必须与它所覆盖的方法完全相同。
(2):覆盖方法不能比它所覆盖的方法访问性差(即访问权限不允许缩小)。换言之,子类的权限至少也要跟父类一样,或者比父类大些。
(3):覆盖方法不能比它所覆盖的方法抛出更多的异常。假如父类方法抛出a b c 异常,那么子类抛出的异常只能是abc里面选,不能是其他的d异常e异常。
 
重载Overload:
在同一个Java 类中(包含父类),如果出现了方法名称相同,而参数列表不同的情况就 叫做重载。
规则:
(1):方法名称必须相同
(2):参数列表必须不同(个数不同,或类型不同,或参数排列顺序不同)。
(3):方法的返回类型可以相同也可以不相同。仅仅返回类型不同不足以成为方法的重 载。 
 
instanceof是Java的一个二元操作符,也是Java的保留关键字。
它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据
public class InstanceofTest{
     public static void main(String [] args) {
 
       String s = "Hello";
       if (s instanceof String) {
         System.out.println("it is a String");
       } else {
             System.out.println("it is not a String");
        }
     }
}
//output:it is a String
 
 
OO   Object-Oriented 面向对象
OOP Object-Oriented Pragraming 面向对象编程
OOD Object-Oriented  Design 面向对象设计
OOA Object-Oriented Architecture 面向对象架构
原文地址:https://www.cnblogs.com/wxc-xiaohuang/p/3477426.html