当前位置:编程学习 > JAVA >>

多态

abstract class Student
 {
 public abstract void study();
 public void sleep()
 {
 System.out.println("躺着睡");
 }
 }
 class BaseStudent
 {   public void study()
 {
 System.out.println("Base Study");
 }
 public void sleep()
 {
 System.out.println("坐着睡");
 }
 }
 class AdvStudent
 {   public void study()
 {
 System.out.println("Adv Study");
 }
 }
 class DoStudent
 {
 public  void dosome(Student stu)
 {
 stu.study();
 stu.sleep();
 }

 }

class DuoTai 
{
public static void main(String[] args) 
{
/*
BaseStudent bs=new BaseStudent();
    bs.study();
bs.sleep();
AdvStudent as=new AdvStudent();
as.study();
as.sleep();
*/
DoStudent ds=new DoStudent();
//ds.dosome(new BaseStudent());
ds.dosome(new AdvStudent());
    }

}

这个怎么解决、。 class --------------------编程问答-------------------- 类型的问题,public  void dosome(Student stu)
ds.dosome(new AdvStudent()); --------------------编程问答--------------------
引用 楼主 qq406262584 的回复:
abstract class Student
 {
 public abstract void study();
 public void sleep()
 {
 System.out.println("躺着睡");
 }
 }
 class BaseStudent
 {   public void study()
 {
 System.out.pr……

楼主啊,你忘记继承Student类了吧

--------------------编程问答-------------------- 楼主大哥,你的继承写掉了!!
abstract class Student {
public abstract void study();

public void sleep() {
System.out.println("躺着睡");
}
}

class BaseStudent extends Student{
public void study() {
System.out.println("Base Study");
}

public void sleep() {
System.out.println("坐着睡");
}
}

class AdvStudent extends Student{
public void study() {
System.out.println("Adv Study");
}
}

class DoStudent {
public void dosome(Student stu) {
stu.study();
stu.sleep();
}

}

class DuoTai {
public static void main(String[] args) {
/*
 * BaseStudent bs=new BaseStudent(); bs.study(); bs.sleep(); AdvStudent
 * as=new AdvStudent(); as.study(); as.sleep();
 */
DoStudent ds = new DoStudent();
 ds.dosome(new BaseStudent());
 ds.dosome(new AdvStudent());
}

}
--------------------编程问答-------------------- class AdvStudent extends Student
你没继承当然不能多态 粗心了吧 --------------------编程问答-------------------- LZ没写继承何谈多态 --------------------编程问答-------------------- 总结下,extends 继承了Student类才可以的


多态: 方法的重载是属于多态
       对于变量,父类的引用指向子类对象可以称之为多态
赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。也就是说,父亲的行为像儿子,而不是儿子的行为像父亲

--------------------编程问答-------------------- 没有定义子类,多态是利用子类对父类继承实现的。通过父类的引用指向子类对象的内存空间··· --------------------编程问答-------------------- 学习了,我说LZ的程序看着怎么少点儿什么东西,原来是继承!~前辈们都是火眼精金啊!~~
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,