java 多重继承的困境

多重继承的困境

1.接口:interface
java中定义类型的一种语法(其他定义类型的语法:class)。
接口不能直接创建对象

格式:
public interface 接口名{内容}

内容:
属性:只能设置常量:(public final int I_NUMBER = 100 ;)//public final可以省略
tips:1.接口中的常量,我们可以只编写 int i =100;JAVA编译器会自动补充修饰词:public static final
方法: 在java8之前,所有的接口中的方法不可以拥有方法体(即没有花括号,直接;结尾),叫做抽象方法,JAVA编译器会自动补充修饰词:abstract
构造器:接口没有构造器。

TIPs:接口的方法是没有方法体的,所以一定需要一个子类来(实现)接口。让子类来完成接口定义的功能。
使用:
在类型声明语句末尾接上【implements 接口1,接口2】实现接口
子类实现父接口的语法:
public class Test implements ITest,ITest2,ITest3{
//必须重写接口定义的方法。
}

TIPs:
1.实现父接口不与继承父类冲突。
2.可以实现多个父接口。
3.子类是通过imlements实现父接口,子接口是通过extends继承父接口。


2.final 终态
修饰词:
属性:final int CONST_NUMBER = 100 ;
Tips:常量的名称全大写字母表示。
方法: final修饰的方法,不能被子类重写
TIPs:放在void之前,与其他修饰词之间没有顺序
类型:final修饰类型。
TIPs:修饰词之间无顺序,所以不知道修饰词放那里时,就放public之前,或者整句代码最前端。



接口补充:
类型与类型之间能继承。(extends)
接口与类型之间能实现。(implements)
接口与接口之间能继承。(extends)

接口的继承与类型的继承一样,会得到父接口的所有东西。

多态
概念: 是面向对象编程的3大基本特征。体现类型,方法的多种状态。

表现:
1. 方法多态:方法的重载:同名不同参。

2. 类型多态:父类引用指向子类对象。
Father father = new Son();
作用:1.通过父类引用使用子类对象。
2.只能使用父类拥有的成员。
好处: 通过父类引用指向子类对象,当我们更换了子类对象后,使用过程是完全不受影响的。执行的方法却是不同的。

TIPs:表面上使用的是父类。
实际上使用的是子类对象。
1.方法只能使用父类型拥有的成员(子类自己定义的成员不能被使用)
2.实际调用的这个成员是子类型的成员(子类型重写父类方法时,调用的是子类重写的这个方法,而不是父类型的)

例题:写一个程序,执行加法和减法运算。

TIPs:父类型可以是父类的类型,也可以是父接口的类型。


TIPs:方法的参数和方法的返回值,我们都可以利用类型多态。

eq:星巴克买饮料。多态用于 返回值类型 。
eq:侠客拿剑砍怪兽。多态用于 参数类型 。


内部类:
类的内部写一个类:成员内部类
方法的内部写一个类:局部内部类
编写一个类直接交给变量:匿名内部类


Tips:为了解决多重继承问题,我们还可以利用成员内部类来解决。
成员内部类:
将一个类定义在一个类的内部,这就叫成员内部类。

定义格式:
public class InnerClass {}
[修饰词] 类型定义关键字class 类名 类的内容


修饰词:成员内部类的访问控制修饰符都可以用。final也可以用。
内部类的内容:属性,方法。
成员内部类,可以像普通类一样去继承父类和实现父接口。

使用成员内部类:1.创建对象: 成员内部类的对象一定要依托于外部类的对象来创建。
2.使用对象:通过对象+"."+属性/方法。
OuterClass outter = new OutterClass();
InnerClass inner = outter.new InnerClass();
局部内部类:
概念:定义在方法中的类型。
格式:
public void run(){
class InnerClass{
//类的成员
}
}
使用:
在局部内部类定义完成后,创建他的对象,并使用
TIPs:对象本身是没有差异的
匿名内部类:
概念:定义类型的同时创建对象
格式:
new 父类型/父接口(){
//类成员的定义
//成员可以任意定义,但是我们通常只在这里重写父类型的方法
}
使用:
通常想要快速得到一个接口的对象时,使用匿名内部类实现接口,并获取这个接口的对象。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值