9.20Java 学习总结 多态

多态:  一般做项目的时候才能体会到多态。

是什么 向上转型

定义: 

1.父类引用指向子类对象,形参和实参也会发生多态  多态发生在赋值的时候。

Person p父类=new Pupil()子类;// 父类引用指向子类。

2.缺点:

1.丢失子类属性

 1如果父类没有,不管子类有没有,都报错
2如果父类有,但是子类没有,调用父类的
3.如果父类有,子类也有,除成员方法用子类(因为重写),其他都用父类

优点

六字真言  高内聚,低耦合

发生的地方

1.直接写

Person p父类=new Pupil()子类;// 父类引用指向子类。

2.形参和实参 : 形参是父类,实参是子类对象

Pupil p=new Pupil();
xx(p);//父类引用
Middle m-new Middle();
xx(m);
}
public static void xx(Person p//子类对象){
p.sad();
}

3.返回值是子类对象用父类引用接受的也是多态。

1.隐式多态

public class Polymorphic_02
public static void main(string[]args){
Child_01 c1=new Child_01();
c1.m2(;
class Parent{
public void m1(){
System.out.println("父类m1");
public void m2(){

Parent this =new Child_01();//多态的发生   
   this 其实是一个默认的父类引用数据类型
然后this 又是This 谁调用的指向谁。所以等于
Paren this = new child-01?() 
父类的引用 指向 子类对象。



this.m1()
class Child_01 extends Parent{
public void m1(){
System.out.println("子类一o1的m1")
}

子类对象调用没有被覆写的父类的成员方法,此方法内部就是一个多态的环境。

和向下转型。强制转换。   

Parent c1=new Child_01();
c1.m2(0i
Child_01 a=(Child_01)c1;//强行转换  (写向装换的类型
)

向上转型是:多态。

instanceof   判断是谁实体化的。

1f(c1 instanceof Child_01){
Child_01 a=(child_01)c1;
a.m1(0;
Felse{
System.out.println("类型有问题");
}

abstract   抽象的关键字   修饰符

定义:

抽象类往往用来表示设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具
体概念的抽象。
比如:动物,它只是一个抽象的概念,并没有一个“东西”叫做“动物”。所以,它并不
能代表一个实体,这种情况下,我们就适合把它定义成抽象类。

1.被abstract  修饰的类叫抽象类。

2.被abstract  修饰的方法叫做抽象方法。

3.abstract不能修饰变量。

5.在抽象类内,可以没有抽象方法(个数0~N),但是抽象方法必须在抽象类和接口里边。

6.与final、private,、static,不能一起使用

  抽象方法和抽象类关系   

被abstract修饰的类就是用来被继承的。  如果子类没有实现  加 abstract继续顺承下去。

被abstract修饰的方法就是用来被实现/覆写的。 

被abstract修饰的类不能创建对象 ,但是有构造方法

接口

定义 语法:权限修饰符implemdnts+接口名{ }  

解决问题:弥补Java 单继承的缺点。 

1.implemdnts  实现  如果想实现多接口实现中间用,隔开、

2.在接口内所以的变量和常量都是共有的静态是常量. 常量必须是大写的。

3.在接口内静态方法默认公有,成员方法默认抽象。

4.接口内不能有构造方法,不能实例化,不能创建对象。 

5.接口的实现了必须实现接口的所有抽象方法,如果没有全部实现,那么该类必须是抽象类。

6.在JDK1.8以后允许出现静态方法和默认方法, 静态方法调用    接口名+方法名      默认方法调用,接口的实现类对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值