1. 继承
//继承的类之间可以用“是一个IS-A”判断,对于多级继承,同样适用,但继承是单向的
//继承是通过extend父类出来的,只继承父类中public的变量和方法,不会继承父类中private的变量和方法
//继承的方法若被子类覆盖,则调用覆盖过的版本,继承下的方法可以被覆盖,但实例变量不可以被覆盖
Dog myDog =new Dog();//声明引用变量Dog myDog和创建对象new Dog()类型保持一致
Animal myDog=newDog();//多态下引用变量Animal myDog和创建对象new Dog()类型可以不同
//三种方法防止类的集成:(1)存取限制,不标记公有,则该非公有类只能被同一个包的类继承;(2)使用final限制的类不能被继承——使用final限制的方法不能不集成;(3)让类只拥有private的构造程序
//若从子类中调用父类的方法,可以用super关键词引用;如super.runreport()
2. 覆盖和重载
覆盖(子类定义和父类一样的方法)(1)参数必须要一样,且返回类型必须要兼容;(2)不能降级方法的存取权限,智能更开放,如不能覆盖掉一个公有的方法并将它标记为私有
重载(一个类中多个同一名字的方法)(1)返回类型可以不同;(2)不能只改变返回类型,还要有参数改变(3)可以更改存取权限
3. 抽象和具体
//不能被初始化的类为抽象类,不是抽象类的类都是具体类;例如不能初始化一个叫animal的类
//抽象用abstract限制,它出了被继承外,没有任何用途,没有值没没有目的
//方法也可以用abstract标记,抽象的方法代表此方法一定要被覆盖过,声明一个抽象方法,则该类必须是抽象的
4. 接口
public interface Pet{...}//接口的定义
public class Dog extends Canine implements Pet{...}//接口的实现
//接口的方法必须是抽象的,必须以分号结束,且没有实现内容,各个方法都是公有抽象的
//采用接口的,其合约规定必须实现 接口里所有抽象方法
//接口好像100%纯天然抽象类