Heim > 类库下载 > java类库 > Java Casual stellt drei Polymorphismen fest

Java Casual stellt drei Polymorphismen fest

高洛峰
Freigeben: 2016-10-13 09:51:40
Original
1906 Leute haben es durchsucht

Polymorphismus:

---Mehrere Formen eines Objekts

Essenz: Die Referenz der übergeordneten Klasse zeigt auf das Unterklassenobjekt

---Voraussetzung : Muss

class Animal{}

class Dog erweitert Animal{}

main{

Dog d = new Dog(); // Wahrer Zustand

Animal dog = new Dog(); //Polymorphic

}

Hinweis: Durch polymorphe Form erstellte Objekte können nur Can Greifen Sie auf die gemeinsamen Mitgliedsmethoden der untergeordneten und übergeordneten Klassen zu. Das Ergebnis der Operation ist, dass die für die Unterklasse eindeutigen Mitgliedsmethoden nicht verwendet werden können.

Virtueller Methodenaufruf:

Das übergeordnete Klassenobjekt ruft die unterklassenspezifische Methode auf

Student S = neuer Student("Zhang San",100);

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

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

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

Polymorphes Array – In einem Array von Referenztypen werden Objekte in polymorpher Form gespeichert.

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

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

neuer Schüler("王五", 22, 119, 91.5),

neuer Lehrer(" Teacher Liu", 35, 10, "Java EE"),

neuer Lehrer( „Teacher Zhang“, 11)};

Polymorphe Parameter – Referenztypparameter in der Methodenparameterliste

Instanceof-Operator – Bestimmen Sie, ob ein Objekt vom angegebenen Typ ist (Form)

Zwang – Konvertieren eines Objekts von einer Referenzform in eine andere

Objektzuordnung:

Ein Objekt wird in einem anderen Objekt verwendet

Ein- zu eins, eins zu viele, viele zu eins

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 name;
private int age;
 
public Person(){}
 
public Person(String name,int age){
this.name = name;
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;
}
}
Nach dem Login kopieren


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage