Java第二课_对象与多态

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%纯天然抽象类

猜你喜欢

转载自blog.csdn.net/qq_28271733/article/details/80951068
今日推荐