筆記
多態(tài)
public class Uncle {
private String name ;
private int age ;
public Uncle(){
}
public void fahongbao(){
System.out.println("發(fā)紅包");
}
子類一
package edu.xcdq;
/**
* @qvthor liuwenzheng
* @date 2021/4/25 14:57
*/
public class UncleTwo extends Uncle{
public void faHongbao(){
System.out.println("發(fā)紅包");
}
public void songyan(){
System.out.println("送煙");
}
}
子類二
package edu.xcdq;
/**
* @qvthor liuwenzheng
* @date 2021/4/25 14:56
*/
public class UncleOne extends Uncle{
public void faHongbao(){
System.out.println("發(fā)紅包");
}
}
多態(tài)
UncleOne dajiu = new UncleOne();
dajiu.faHongbao(); //大舅發(fā)紅包
UncleTwo uncleTwo = new UncleTwo() ;
uncleTwo.faHongbao(); //二舅發(fā)紅包
向上轉(zhuǎn)型
Uncle dajiu1 = new UncleOne() ;
dajiu1.fahongbao();
向下轉(zhuǎn)型
Uncle dajiu1 = new UncleOne() ;
dajiu1.fahongbao();
//子類獨(dú)有的方法在發(fā)生向上轉(zhuǎn)型的時(shí)候無法在父類中使用
//dajiu1.songyan //會(huì)報(bào)錯(cuò)
UncleOne temp = (UncleOne) dajiu1 ; //向下轉(zhuǎn)型
temp.songyan(); //可以調(diào)用子類獨(dú)有的方法
instanceof
判斷對(duì)象是否是指定的類型實(shí)例
避免發(fā)生錯(cuò)誤的類型轉(zhuǎn)換
package edu.xcdq;
/**
* @qvthor liuwenzheng
* @date 2021/4/25 15:58
*/
public class Demo02 {
public static void main(String[] args) {
Uncle uncle1= new UncleOne() ;
Uncle uncle2 = new UncleTwo() ;
if (uncle1 instanceof UncleOne){
UncleOne u1 = (UncleOne) uncle1 ;
u1.fahongbao();
}
if (uncle2 instanceof UncleTwo){
UncleTwo u2 = (UncleTwo) uncle2 ;
u2.faHongbao();
}
}
}
Demo01
package edu.xcdq;
/**
* @qvthor liuwenzheng
* @date 2021/4/25 14:45
*/
public class Demo01 {
public static void main(String[] args) {
//多態(tài)
UncleOne dajiu = new UncleOne();
dajiu.faHongbao();
UncleTwo uncleTwo = new UncleTwo() ;
uncleTwo.faHongbao();
Uncle dajiu1 = new UncleOne() ;
dajiu1.fahongbao();
//dajiu1.songyan //會(huì)報(bào)錯(cuò) 子類獨(dú)有的方法在發(fā)生向上轉(zhuǎn)型的時(shí)候無法在父類中使用
UncleOne temp = (UncleOne) dajiu1 ;
temp.songyan();
Uncle erjiu = new UncleTwo() ;
erjiu.fahongbao();
//向下轉(zhuǎn)型
Uncle uncleTwo1 = new UncleTwo() ;
UncleTwo temp1 = (UncleTwo) uncleTwo;
temp.faHongbao();
}
}
Demo02
package edu.xcdq;
/**
* @qvthor liuwenzheng
* @date 2021/4/25 15:58
*/
public class Demo02 {
public static void main(String[] args) {
Uncle uncle1= new UncleOne() ;
Uncle uncle2 = new UncleTwo() ;
if (uncle1 instanceof UncleOne){
UncleOne u1 = (UncleOne) uncle1 ;
u1.fahongbao();
}
if (uncle2 instanceof UncleTwo){
UncleTwo u2 = (UncleTwo) uncle2 ;
u2.faHongbao();
}
}
}
Uncle
package edu.xcdq;
/**
* @qvthor liuwenzheng
* @date 2021/4/25 14:47
*/
public class Uncle {
private String name ;
private int age ;
public Uncle(){
}
public Uncle(String name , int age){
this.name = name ;
this.age = age ;
}
public void fahongbao(){
System.out.println("發(fā)紅包");
}
public String getName(){
return name ;
}
@Override
public String toString() {
return "Uncle{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
public int getAge() {
return age;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
}
UncleOne
package edu.xcdq;
/**
* @qvthor liuwenzheng
* @date 2021/4/25 14:56
*/
public class UncleOne extends Uncle{
public void faHongbao(){
System.out.println("發(fā)紅包");
}
public void songyan(){
System.out.println("送煙");
}
}
UncleTwo
package edu.xcdq;
/**
* @qvthor liuwenzheng
* @date 2021/4/25 14:57
*/
public class UncleTwo extends Uncle{
public void faHongbao(){
System.out.println("發(fā)紅包");
}
}