抽象类,抽象方法。检测面向抽象编程
作者:互联网
package cn.jhf.study;
//抽象类,抽象方法。检测面向抽象编程
public class TestAbstract {
public static void main(String[] args) {
// Shoes s = new Shoes(); 这里会报错。因为抽象类是不能被实例的,无法创建抽象类的对象
//要用多态的方式创建对象
//抽象父类不能创建自己的对象,所以父类的构造方法是不能运行的。
//父类的构造方法是供给子类的对象使用的,通过子类的构造方法内使用super()调用父类构造方法
Shoes s1 = new Nike();
s1.run();
s1.jump();
}
}
//创建抽象父类
abstract class Shoes{
//抽象类可以有成员变量
String brand;
double size;
//抽象类可以有构造方法
public Shoes(){
System.out.println("父类的无参构造");
}
public Shoes(String a){
System.out.println("父类的含参构造"+a);
}
//创建抽象方法。抽象方法是被abstract修饰的没有方法体的方法
abstract public void run();
//也可以创建普通方法
public void jump(){
System.out.println("穿上之后能跳出宇宙");
}
}
//创建子类
class Nike extends Shoes{
//创造子类构造方法
public Nike(){
super("空军一号");//默认这里有super()调用父类的无参构造方法.但是可以改参数调用对应父类的含参构造方法
System.out.println("子类Nike的无参构造方法");
}
//重写父类的抽象方法。
//要么子类也是被abstract修饰的抽象类,要么子类必须重写父类里的抽象方法
public void run(){
System.out.println("穿上它就是飞毛腿");
}
}
标签:Shoes,构造方法,子类,编程,抽象,抽象类,父类,public 来源: https://www.cnblogs.com/jhfnewstart/p/14863558.html