目录
继承
描述:
父类/基类 是通用的类。
子类称为继承类/派生类。
继承:可访问的数据域和方法,可另外添加
一个类定义一个类型 。(子类:子类型 父类同理
不同的类有一些共同的行为,特征。那么可以在一个通用类里表达这些共同点,为其他类所共用。
子类继承父类,子类对象(就是实例)有父类的实例域,方法。或者使子类具有父类相同的行为。
class 父类{
}
class 子类 extends 父类{
}
//公共父类
private String name;
private int id;
public Animal(String myName,int myid){
//初始化属性值
name = myName;
id = myid;
}
public void eat(){//吃这个方法的具体实现
System.out.println(name+"正在吃");
}
public void sleep(){//睡这个方法的具体实现
System.out.println(name+"正在睡");
}
public void introduction(){
System.out.println(name+" "+id);
//子类
public class dog extends Animal{
public dog (String myName,int myid){
super(myName,myid);
}
}
继承类型
单继承,多重继承,不同类继承同一个类
单继承:一个子类继承一个父类
多重继承:B类继承A类,C类继承B类····
继承特性
- 子类有父类非private的属性,方法。
- 子类拥有自己的属性,方法,子类可扩展
- 子类可用自己方式实现父类的方法。
- 提高了类之间的耦合性(耦合性越高,代码之间联系越紧密,代码独立性越差)
总结
如果父类里被private修饰,则子类无法继承和访问,父类访问子类需要new一个对象才能访问,不能直接访问。(类的实例方法可以直接调佣父类的非private实例方法)
实例成员包括实例变量和实例方法==成员变量和成员方法。
静态成员--类成员,静态变量--类变量,静态方法--类方法
extends关键字
单一继承,一个子类有一个父类,extends只继承一个类。
implements关键字
多继承,自我想象一下 ><
public class C implements A,B{
}
关键字super 和this
super对父类成员访问,调用父类方法
this对自己类成员访问,调用自己的方法
关键字final
修饰变量(类属性,对象属性,局部变量,形参)、方法(类方法,对象方法)和类。
final是java中的修饰符,可以修饰类,方法和属性,不能修饰接口和抽象类。
final把类定义 定义为最终类,不能被继承,
- final修饰变量,则等同于常量
- final修饰方法 中的参数,称为最终参数
- final修饰类,则类不能被继承,用于修饰方法
- final修饰方法可以被重载,但不能被子类重写
- final定义的类,属性和方法不是final的
//声明:
final class 类名{
//类体
}
//声明方法
修饰符(public/private/default/protected) final 返回值类型 方法名(){//方法体}
构造器
子类不继承父类的构造器(构造方法或者构造函数),只调用(隐式或显式)。
若父类的构造器有参数,必须在子类构造器中显式的用super关键字调用父类的构造器并配参数列表。
如父类构造器无参,则子类构造器不使用super关键字调用父类构造器,直接自动调用父类的无参构造器
super的两种途径:
- 调用父类的构造方法
- 调用父类的普通方法
要调用父类的构造方法就必须使用关键字super,这个调用必须是构造方法的第一条语句。
在子类中调用父类的构造方法的名字会引起语法错误
码字不易,给个关注再走嘛~