永发信息网

抽象类可继承实体类(要有明确的构造方法),这句话该怎么理解?

答案:1  悬赏:10  手机版
解决时间 2021-11-07 14:45
抽象类可继承实体类(要有明确的构造方法),这句话该怎么理解?
最佳答案
抽象类可以extends实体类。其实这就是类之间正常的继承关系。关于构造方法的说明,请看下例:
public class Test1 {
// 本例中所有类的父类
class A {
public A(){} // 这是一个无参构造函数。如果不写这个构造函数,则编译器默认为具有这个构造函数。
public void println() {
System.out.println("我是A的子类或对象,但不是B的子类。");
}
}
// A1类是A的子类
class A1 extends A{
// 这里没有写构造函数,则编译器默认为具有一个无参构造函数。
}
// B是A1的子类,而且它是抽象类,具有抽象方法getName。并且复写了println方法
abstract class B extends A1{
public B(){// 这是一个无参构造函数。如果不写这个构造函数,则编译器默认为具有这个构造函数。
super(); // 它继承了A1,那么此构造函数第一句必须调用父类的构造方法。如果构造函数中没写这句,则编译器默认为调用了父类的无参构造方法。
// 如果父类没有无参构造函数,则必须显式调用父类的构造函数。
}
public abstract String getName();
public void println(){
System.out.println("我是B的子类,我的名字叫:" + getName());
}
}
// B1是B的子类,实现了抽象方法getName
class B1 extends B{
// 这里没有写构造函数,则编译器默认为具有一个无参构造函数;由于它是一个类的子类,所以默认构造方法中的第一句默认为调用父类的构造方法。
public String getName(){
return "B1";
}
}

public void doRun(){
A b1 = new B1();
// 以内部类的方式构造对象
A b2 = new B() {
public String getName() {
return "B2";
}
};
A a = new A();
A a1 = new A1();
b1.println();
b2.println();
a.println();
a1.println();
}
public static void main(String args[]){
Test1 t = new Test1();
t.doRun();
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
马来克力士剑有的卖吗?价格多少?
自行车比赛的车价是多少?车身有多重
光前裕后释义是什么
从高陵南十字到蓝田汽车站怎么坐公交车,最快
炉霍县邮政营业厅办公地址在什么地方,我要处
广安市民安机动车安全技术检测有限公司地址有
附近有买渔具店吗 - 百度
以“相”开头的成语。
从莒县到青岛的火车有几点的车票多少
自由工作者用英语怎么说
我想养一只比较聪明的,漂亮的,中型犬,无体
我家猫咪随地大小便,怎么办?
天津京剧院换院长啦
你认为利用西方组织行为学概念和模型来分析中
炸花生米炸过了,发苦怎么办
推荐资讯
结构整体分析时采用刚性楼盖假定在规范哪一条
能帮我编一个尺寸在90×90以内的卡通图片数铣
四千块钱一亩地四分地是多少钱
我公司给我交了两年多的社保了,但我一直没有
被小狗咬了,
男人元阳是指什么
车床车M30x1.0外牙,最少壁厚是多少
魔兽7.0诺米的银鲭鱼怎么获得 萌芽魔豆有什么
lol我要一套通用纯肉装,注一定要纯肉
城市污水处理厂在曝气池通过增加曝气量,大幅
书名中有归字的一部小说
为什么中午吃了藕下午15:00就觉得饿得很了,这
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?