昆明java培训
达内昆明广州春城路

18487146383

热门课程

【昆明Java培训】 java知识点之多态

  • 时间:2016-10-21
  • 发布:昆明Java培训
  • 来源:达内新闻

昆明Java培训的老师今天给同学们讲 java的多态。

多态:

---一个对象的多种形态

实质:父类的引用指向子类对象

---前提:必须有继承或者是实现

class Animal{}

class Dog extends Animal{}

main{

Dog d = new Dog(); //本态

Animal dog = new Dog(); //多态

}

注意:通过多态形式创建的对象,只能访问子父类共有的成员方法,运行结果为子类结果是子类特有的成员方法不能方法。

虚拟方法调用:

父类对象调用子类特有的方法

Student S = new Student("张三",100);

Person p = new Student("李四",200);

System.out.println(S.say());

System.out.println(p.say());

多态数组—在引用类型的数组中,使用多态形式存放对象。

eg:Person[] person = {new Person("张三", 32),

new Student("李四", 21, 120, 90.0),

new Student("王五", 22, 119, 91.5),

new Teacher("刘老师", 35, 10, "Java EE"),

new Teacher("张老师", 11)};

多态参数—方法参数列表中的引用类型参数

instanceof运算符—判断一个对象是否为指定类型(形态)

强制类型转换—将对象从一种引用形态转换为另一种引用形态

对象关联:

一个对象中使用了另一个对象

一对一,一对多,多对一

class test4 {

public static void main(String[] args){

Person p = new Person("王五",50);

method(p);

Student S = new Student("张三",100);

method(S);

Person p1 = new Student("赵四",100);

method(p1);

}

public static void method(Person p){

if (p instanceof Student){

System.out.println("教师");

Student s = (Student)p;

System.out.println("本态方法调用:"+p.say());

}else{

System.out.println("人");

}

System.out.println(p.say());

}

}

class Person{

private String ame;

private int age;

public Person(){}

public Person(String name,int age){

this.name = ame;

this.age = age;

}

public String getName(){

return name;

}

public String say(){

return "姓名:"+name+"年龄:"+age;

}

}

class Student extends Person{

private int id;

private double score;

public Student(String name,int id){

this(name,20,id,98.5);

}

public Student(String name,int age,int id,double score){

super(name,age);

this.id = id;

this.score = score;

}

public double getId(){

return id;

}

public String say(){

return super.say()+"学号:"+id+"分数:"+score;

}

}

昆明Java培训的老师讲的知识点大家都懂了吧,如果没有懂的地方记得联系我们昆明Java培训班的老师。

上一篇:快速排序(QuickSort)-Java实现
下一篇:Java培训:Struts2的配置文件

“因材施教,分级培优”十问十答

达内举办“2016授课讲师资格认证培训“,不断提升教学品质

达内牵手猿圈科技,打造技能测评、学习、就业一站式服务

毕业三年之内能转行学编程吗?

选择城市和中心
贵州省

广西省

海南省

台湾