两三天没有更新博客,深感不安,晚来有时,遂有此文。
关于继承的特点
1.单继承:子类只能有一个直接父类
2.多级继承:子类的父类也可以有父类
3.父类可以有多个子类
继承之后
子类对象直接使用父类构造方法
子类对象可以直接使用父类的成员方法
若果子类方法和父类方法重名,则定义的是哪个类的对象就优先用哪个没有的话就向上级寻找
方法的重写 关键字 @override
当子类中有一个和父类同名的方法时,可以对其进行重写8(方法名相同,参数也相同)
注意:重写的方法权限修饰符要大于等于被重写的方法
(public >protected>(default)>private)
继承的关键词 extends
//定义一个普通类名字叫“父”
public class Fu {
public void method(){
System.out.println(“父类方法”);
}
}
//定义一个子类继承“父”类
public class Zi extends Fu {
public Zi() {
}
public void method2() {
System.out.println("子类方法");
}
}
package demo02;
public class Main {
public static void main(String[] args) {
Zi zi = new Zi();
Fu fu = new Fu();
zi.method();//如果没有重写父类方法,则这里应该执行子类method
fu.method();//执行父类method
zi.method2();//执行子类方法meth2
}
}
//使用父类和子类的方法
package demo02;
public class Main {
public static void main(String[] args) {
Zi zi = new Zi();
Fu fu = new Fu();
zi.method();//如果没有重写父类方法,则这里应该执行子类method
fu.method();//执行父类method
zi.method2();//执行子类方法meth2
}
}
/
关于抽象的概念
例如:
假设
图形——>>是一个类 图形的面积——>>抽象方法(不知道怎么求)
正方形——>>是图形的子类 正方形的面积——>>具体方法(边长x边长,知道怎么求)
关键字 abstract(抽象方法只能放在抽象类中,抽象类中可以没有抽象方法)
例如:
package demo02;
public abstract class useAbstract {
public abstract void method();//这是一个抽象方法
public void method2(){
System.out.println(“这是一个非抽象的方法”);
}
}
1.抽象类不能直接创建对象,必须创建一个子类继承抽象类
2.继承的抽象类的子类必须重写全部抽象方法,否则子类也必须是抽象类
package demo02;
public class realUseAbstract extends useAbstract {
@Override
public void method() {
System.out.println(“在这里我们就重写了method方法”);
}
}
3.创建子类对象并使用