package test9;
/*
* 1.如何定义抽象类?
* class关键字前加abstract
* 2.抽象类无法被实例化,也就是无法创建对象
* 3.虽然抽象类没有办法实例化,但抽象类也有构造方法,该构造方法是给子类创建对象用的,一般会用到继承和多态
* 4.抽象类可以定义抽象方法:
* 抽象方法的语法:在方法的修饰符列表中添加abstract关键字,并且抽象方法应该以;结束,而不是{}
* 例如,public abstract m1();
* 5.如果一个非抽象类继承抽象类,必须将抽象类中的方法进行覆盖重写,改成非抽象方法因为抽象方法一定是出现在抽象类中的
*/
public class test9 {
public static void main(String[] args) {
a a1=new b();//多态,创建父类型对象指向子类型
}
}
abstract class a{
a(){ //抽象类中可以有抽象方法也可以没有,但抽象方法一定出现在抽象类中
System.out.println("a````");
}
}
class b extends a{
b(){//构造方法创建不一定调用对象,可以用super去调用
System.out.println("b````");
}
}
/*
* 1.如何定义抽象类?
* class关键字前加abstract
* 2.抽象类无法被实例化,也就是无法创建对象
* 3.虽然抽象类没有办法实例化,但抽象类也有构造方法,该构造方法是给子类创建对象用的,一般会用到继承和多态
* 4.抽象类可以定义抽象方法:
* 抽象方法的语法:在方法的修饰符列表中添加abstract关键字,并且抽象方法应该以;结束,而不是{}
* 例如,public abstract m1();
* 5.如果一个非抽象类继承抽象类,必须将抽象类中的方法进行覆盖重写,改成非抽象方法因为抽象方法一定是出现在抽象类中的
*/
public class test9 {
public static void main(String[] args) {
a a1=new b();//多态,创建父类型对象指向子类型
}
}
abstract class a{
a(){ //抽象类中可以有抽象方法也可以没有,但抽象方法一定出现在抽象类中
System.out.println("a````");
}
}
class b extends a{
b(){//构造方法创建不一定调用对象,可以用super去调用
System.out.println("b````");
}
}