前言:
现在小伙伴们对“抽象类继承非抽象类”大概比较关注,姐妹们都想要知道一些“抽象类继承非抽象类”的相关资讯。那么小编在网上网罗了一些关于“抽象类继承非抽象类””的相关知识,希望同学们能喜欢,各位老铁们快快来学习一下吧!例1.7.2(抽象类可以继承实体类)
class VehMark_to_win {
void steer() {
System.out.println("Turn steering wheel");
}
}
abstract class Cart extends VehMark_to_win {
//因为Cart是抽象的, 可以这里还是什么都不干
}
abstract class Car extends VehMark_to_win {
void move() {
System.out.println("move");
}
}
class Lim extends Car {
//之所以这里可以什么都不干, 而且还不是抽象的,马克-to-win: 因为父类Car全部实现了Veh的抽象方法
}
public class Test {
public static void main(String[] args) {
Lim l = new Lim();
l.move();
}
}
输出结果:
move
多态,动态方法调度(dynamic method dispatch)
多态Polymorphism,向上转型Upcasting,动态方法调度(dynamic method dispatch)
马克- to-win:马克 java社区:防盗版实名手机尾号: 73203。
什么叫多态?简言之,马 克 - t o - w i n:就是父类引用指向子类时,父类和子类必须同时拥有某个同名函数,父类引用到底指向谁(调用谁的函数),是在runtime时决定的,因此呈现多种状态(不知道会指向若干子类中的哪一个还是父类自己)。拿上一节的例子来讲,比如运行时如果用户输入自行车,就执行自行车的驾驶方法。如果用户输入小轿车,就执行小轿车的驾驶方法,涉及到用户,这些都只能在运行时才能干。运行时的,就是动态的,所以这也是动态方法调度(dynamic method dispatch),既然是父类指针指向子类,这也是向上转型Upcasting(为什么是向上?看我本章的第一张图:父类 fuLei=(父类)
篇幅有限更多请见扩展链接:
标签: #抽象类继承非抽象类 #抽象类可以实现实体类吗为什么 #java抽象类例子