继承定义:子类继承父类的特征和行为,使得子类具有父类的各种属性和方法。或子类从父类继承方法,使得子类具有父类相同的行为。
多态定义看了很多,都觉得不够贴切,后来在一个同学的笔记中看到了如下的定义觉得很准确粘贴出来:
多态定义: 多态指的是子类对象可以直接复制给父类的变量(或者子类对象指向父类的引用),但运行时依然表现出子类的行为特征 这意味着同一个类型的对象在执行同一个方法时,可能会表现出不同的行为特征。
解释:类中包含了类的行为(方法)和属性(变量),而多态只是针对类的行为特征即方法的,而不针对任何的变量。(因此下面题中的 ‘System.out.println(parent.i);’输出的是引用类的成员变量0)。
因此有如下结论:
总结:多态指的是成员方法,对象的成员常量不具有多态性。
代码实现:
package demo.test;
//父类
class ParentClass {
public int i = 0;
public void test(){
System.out.println("this is ParentClass");
}
}
//子类
public class SubClass extends ParentClass{
public int i = 1;
public void test(){
System.out.println("this is SubClass");
}
public static void main(String[] args) {
SubClass sub1 = new SubClass();
ParentClass parent = new SubClass();
System.out.println(sub1.i);//1
System.out.println(parent.i);//0
sub1.test();//SubClass
parent.test();//SubClass
}
/**
* 1
* 0
* this is SubClass
* this is SubClass
*/
}
529

被折叠的 条评论
为什么被折叠?



