JAVA多态
个人解读的多态:就是
父类对象名 =new 子类对象名
只要子类继承于对象,重写了这个方法,并且子类对象指向的父类引用的这个父类对象,那么这就是多态
父类就可以调用子类中的方法
不知道我的理解是否有误 ,请指正,另外有个问题 :
1.为什么子类重写了父类中的成员变量,父类却不能调用子类中的成员变量呢?1
2.什么是引用?
3.new 出来的子类对象是把地址值传给了父类对象名吗?
PS:每个帮助我的,我都会鱼币感谢的!!^_^! ! 1.根据我的理解,
父类对象名 =new 子类对象名
其实是把父类特殊化,使它具有子类特征,但是只是特殊化,所以依旧是父类,因此不能使用子类中父类没有定义的成员变量等等
2.如果一个变量的类型是 类类型,而非基本类型,那么该变量又叫做引用
比如:
new Hero();
代表创建了一个Hero对象但是也仅仅是创建了一个对象,没有办法访问它为了访问这个对象,会使用引用来代表这个对象
Hero h = new Hero();
h这个变量是Hero类型,又叫做Hero类型的引用。
3.对于第三个问题,我的答案是对 My_A 发表于 2019-7-7 15:47
1.根据我的理解,
其实是把父类特殊化,使它具有子类特征,但是只是特殊化,所以依旧是父类,因此不能使 ...
既然是父类对象调用子类对象,是不是调用的时候,调用一个方法,先调用子类那个中的方法,如果子类中没有这个方法 ,再调用父类方法吗?
变量也是同理吗? My_A 发表于 2019-7-7 15:47
1.根据我的理解,
其实是把父类特殊化,使它具有子类特征,但是只是特殊化,所以依旧是父类,因此不能使 ...
那子类重写了父类方法,那这个父类对象就只能引用子类中的重写后的子类方法,而不能直接访问父类方法吗? 买路郎 发表于 2019-7-8 09:42
那子类重写了父类方法,那这个父类对象就只能引用子类中的重写后的子类方法,而不能直接访问父类方法吗?
是的
买路郎 发表于 2019-7-8 09:37
既然是父类对象调用子类对象,是不是调用的时候,调用一个方法,先调用子类那个中的方法,如果子类中没有 ...
父类对象调用子类对象,只会调用父类存在的属性及方法。
比如:
public class People{
public void speak(){
System.out.println("People is speaking!");
}
}
public class Girl{
public void speak(){
System.out.println("Girl is speaking!");
}
}
public class Boy{
public void speak(){
System.out.println("Boy is speaking!");
}
}
public class running{
public static void main(String[] args){
Girl gilr= new Girl()
Boy boy = new Boy()
talk(girl)
talk(boy)
}
public void talk(People p){
p.speak()
}
}
//可以看到输出是:
//Girl is speaking!
//Boy is speaking!
//而不是 People is speaking!
所以这就是多态,极其方便{:10_256:} My_A 发表于 2019-7-8 11:02
父类对象调用子类对象,只会调用父类存在的属性及方法。
比如:
不是继承并重写了 才能算是多态吗? 买路郎 发表于 2019-7-8 15:17
不是继承并重写了 才能算是多态吗?
我这里有个教学网址你可以看一下:
https://www.runoob.com/java/java-polymorphism.html My_A 发表于 2019-7-8 16:02
我这里有个教学网址你可以看一下:
https://www.runoob.com/java/java-polymorphism.html
我一直在看这个
页:
[1]