标签:div 概念 private 注意 bst 关键字 多态性 get 面向对象
语法
class 父类{}
class 子类 extends 父类{}
只能多层继承,不能多重继承,子类不能直接访问父类中的私有成员,可通过getter和setter方法获得特别:在子类中:
1.super.name-->访问父类中的name属性
2.this.name-->访问“本“类中的name属性
重载:
01.方法名相同参数类型或个数不同
02.对权限没有要求
03.发生在同一个类中
覆写:
01.方法名称,参数类型相同
02.被覆写的方法(即子类方法)不能拥有(比父类方法)更严格的访问权限
03.发生在继承类中
super调用父类构造
**同this一样,该语句必须放在构造方法的句首**
this与super的区别:
this:
01.属性:调用本类中的属性,若没有,则从父类中寻找
02.方法:调用本类中的方法,若没有,则从父类中寻找
03.构造:调用本领构造,必须放在构造方法的首行
04.特殊:表示当前的对象
super:
01.属性:访问父类中的属性
02.方法:直接访问父类中的方法
03.构造:调用父类构造,必须放在子类的构造方法里的首行,如:super();
注意:
1. 使用final声明的“类‘’不能有子类
2. 使用final声明的”方法”不能被子类所覆写
3. 使用final声明的变量即为常量,常量不可修改!
4. public static final同时声明的变量称为全局”常“量
本质:抽象类比普通类多了个抽象方法,除了不能直接进行对象的实例化操作外其实并没有不同
```
由全局常量和公共的抽象方法组成
interface 接口名称 {
全局常量;
抽象方法;
}
通常,我们知道,全局常量是public static final,抽象方法是public abstract,但此处特殊,默认所以可省略该定义,实际上还有的
interface A{
String s="作者"; //定义全局常量
void print(); //定义抽象方法
String getInfo(); //抽象方法不需{}
}
一个接口不能继承抽象类,但一个接口允许继承多个接口
interface A{} interface B{} interface C extends B,C{}
接口不能实现接口,可以实现继承
对象向上转型:父类 父类对象 =子类实例;
如:B b =new B(); //子类实例化过程
A a =b; //向上转型
对象向下转型:子类 子类对象 =(子类)父类实例;
如:A a =new B(); //向上转型
B b =(B)a; //向下转型:A-->B
读法:一个程序要从右到左:
如:A a =new B();
是B实例化了一个对象,该B的对象再向上转型成为了A的对象a
如下:
A a1=new B();
A a2=new A();
01.a1同时是A和B的对象-->通过子类实例化的对象同时也是父类和子类的实例,所以可以直接向上或向下转型向下转型前进行判断操作,避免异常
```
A a=new B();
if( a instanceof B){ }
标签:div 概念 private 注意 bst 关键字 多态性 get 面向对象
原文地址:https://www.cnblogs.com/JZTX123/p/8972473.html