Java抽象类分析

1、如果父类中含有抽象方法,留给子类去实现,则父类必须显式的被定义成一个abstract类,否则

子类继承父类并实现抽象方法的时候,发生编译报错

例子:

public class demo{
public static void main(String[] args){
SubClass sc = new SubClass();
sc.print();
}
}


class SuperClass{
abstract void print();
}


class SubClass extends SuperClass{
void print(){
System.out.println("print");
}
}



2、一个非抽象类继承了一个含有抽象方法的抽象类。则它必须要覆盖(或实现)父类中的抽象方法,否则编译报错。

public class demo{
public static void main(String[] args){
SubClass sc = new SubClass();
sc.print();
}
}


abstract class SuperClass{
abstract void print();
}


class SubClass extends SuperClass{
// void print(){
// System.out.println("print");
//}
}




总结:

1) Abstract(抽象)可以修饰类、方法 

如果将一个类声明为abstract,此类不能生成对象,只能被继承使用。 

Abstract类的设计是将子类的共性最大限度的抽取出来,以提高程序的统一性。 


2) 一个类中包含有抽象方法必须声明为抽象类;  
如果一个类中有一个抽象方法,那么这个类一定为一个抽象类。 
反之,如果一个类为抽象类,那么其中可能有非抽象的方法。 

3) 抽象类不能实例化,但仍可以声明;  
Abstract类可以作为编译时类型,但不能作为运行时类型。 

4) 子类继承抽象类必须实现其中抽象方法 
当abstract用于修饰方法时,此时该方法为抽象方法,此时方法不需要实现,实现留给子类覆盖,子类覆盖该方法之后方法才能够生效。 
注意比较: 
private void print(){};此语句表示方法的空实现。 
Abstract void print(); 此语句表示方法的抽象,无实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值