承。(一个儿子只能有一个亲爹)
② 多个类可以继承一个父类,(一个)
Class A{}
Class B extends A{}
Class C extends A{} //类B和类C都可以继承类A
③ 多层继承是可以的,即一个类的父类可以再去继承另外的父类,
Class A{}
Class B extends A{} //类B继承类A,类B是类A的子类
Class c extends B{} //类C继承类B, 类C是类B的子类,同时也是类A的子类
④子类和父类是相对概念,也就是说一个类是某一个类父类的同时,也可以是另外一
,提高了开发的效率)
1.7接口和抽象类的区别
相同点: 接口和抽象类都是抽取出共性的内容
不同点:
① 与类的关系不同
类和接口是实现关系:多实现
类和抽象类时继承关系:单继承,多层继承
② 成员变量定义不同
接口只能有静态常量 public static final
抽象类可以有成员变量,也可以有常量
③ 成员方法定义不同
接口只能有抽象方法 public abstract
抽象类可以有抽象方法,也可以没有抽象方法(避免创建对象),也可以也非抽象方
造方法
Public Y Y 不是 Y Y Y
默认 Y Y Y Y Y Y
Protected 不是 Y 不是 Y Y Y
Private 不是 Y 不是 Y Y Y
Abstract Y Y Y 不是 Y 不是
Static 不是 Y 不是 Y Y 不是
Final Y Y Y Y Y 不是
2.7内部类和外部类的相互访问规则:
⑴内部类访问外部类成员:
①非静态内部类
可以访问外部类的非静态成员变量
可以访问外部类的静态成员变量
②静态内部类
不能访问外部类的非静态成员变量
可以访问外部类的静态成员变量
⑵外部类访问内部类成员
① 非静态内部类
外部类不能直接访问非静态内部类成员
外部类可以通过非静态内部类对象访问非静态内部类的非静态成员
外部类可以通过非静态内部类类名访问非静态内部类的静态成员
②静态内部类
外部类不能直接访问静态内部类成员
可以通过静态内部类对象访问静态内部类的非静态成员
可以通过静态内部类类名访问静态内部类的静态成员
⑶ 匿名内部类和直接定义子类实现接口或继承抽象类,应该用哪种方式?
分情况:
如果对这个接口或抽象类,只有一种实现方式,就直接定义实现类,创建该类对象作