public class zi extends fu{
public void say (){
System.out.println("say,erzi");
}
public void eat(){
System.out.println("eat");
}
}
public class fu {
public void say(){
System.out.println("say,baba");
}
}
public class Application {
public static void main(String[] args) {
zi z = new zi();//创建一个子类对象
fu f = new zi();//父类的引用指向子类,但只能用他自己本身的方法,不能使用子类独有的方法
f.say();
z.eat();
}
}
多态:
-
多态是方法的多态,属性没有多态
-
父类和子类,有关系的类,如果两个类型没有关系,则会报异常ClassCastException
-
对象能执行哪些方法主要看左边的类型,和右边关系不大,左边是父类,则只能使用父类方法或者object,左边是子类,则可以使用自己独有的方法和父类的方法
-
如果两个类存在继承关系,且父类的引用指向子类,那这个父类型本身的方法会被子类覆盖重写,如上代码,Fu,Zi两个类都有say方法,但是父类的引用指向了子类,这样操作以后,f调用say方法时会输出被子类重写以后的方法,且不能使用子类独有的eat方法,如需使用需要进行强制类型转换为zi
-
存在多态的条件:有继承关系,方法需要重写,父类引用指向子类对象
标签:子类,多态,say,父类,方法,public 来源: https://www.cnblogs.com/xiaoheyyds/p/16062948.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。