继承学习笔记

1.关键字:extends

作用:可以让一个类和另一个类建立起继承的关系;

范例:public class 类名 extends 类名{}

第一个类名:自己的文件名 (也称为子类) 等二个类名:你要继承的父类名字(也称为父类

2.继承特点

Java支持单继承,不支持多继承, 但支持多层继承

​ 单继承:一个子类只能继承一个父类

​ 不支持多继承:子类不能同时继承多个父类

​ 支持多层继承:子类A 继承 父类B,父类B 可以继承 父类C(就如同现实中的祖孙三代这样的关系)

​ 父类C 对于 子类A 属于间接父类,父类B 对于 子类A 属于直接父类

3.继承中子类无法继承父类的构造方法,子类要向父类传参需要用到super关键字

//父类Pet
public class Pet{
	
	public String name;
	public String sex;
	
 	 //构造方法
	public Pet(String name){
		this.name = name;
	}
	
	public void eat(){
		System.out.println(name+"宠物吃东西");
	}
	
}

//子类 Dog
public class Dog extends Pet{
	public String hair;
	
	public Dog(String name){
		super(name);//调用父类构造器  并传参给父类
	}
	
	public void look(){
		System.out.println("狗看家");
	}
	

//子类 Cacuts
public class Cactus extends Pet{
	
	public String stub;
	
	public Cactus(String name){
		super(name);
	}
	
	public void flower(){
		System.out.println("开花结果");
	}
	

//测试类
public class Test{
	public static void main(String [] args){
		 Dog d = new Dog("小白");
		 d.sex = "公狗";
		 d.hair = "黑毛";
		
		 Cactus ca = new Cactus("大黄");
		 ca.sex = "无";
		 ca.stub = "扎人的刺";
		
		 d.eat();
		 d.look();
		 ca.eat();
		 ca.flower();

	}
}
/**测试结果:
小白宠物吃东西
狗看家
大黄宠物吃东西
开花结果
*/

4.关键字--abstract (抽象) : 抽象父类的作用是约束子类必须完成这个方法,抽象类无法实例化(即 不能对其进行new创建对象)

多态--重写

子类中和父类具有相同的方法时 ,子类重写父类中的方法,优先执行子类中的方法

方法名一样,参数一样,返回类型一样,方法体不一样。

父类中的方法原型在子类中完成

5.多态--向上转型 和 向下转型

向上转型

Pet pt = new Dog("大红");
System.out.println(pt);

//向上转型范例  跟上面的一个父类和二个子类一起运行
public class PetTest{
	//传入父类
	public void work(Pet pet){
		pet.eat();
	}
	public static void main(String[]args){
		Dog dog = new Dog("大红");
		dog.gender="公";
		dog.hair="金毛";
		PetTest pt = new PetTest();
		pt.work(dog);
 /**
 输出结果:
 大红用嘴巴吃东西
 */   

向上转为大类,放弃一切个体特征,比如去澡堂子脱掉衣服,大家都一样

父类引用指向子类对象,子类对象独有的方法,特征被隐藏,共有的才会显示出来

Pet pt = new Dog();

向上转型的时候,父类

做参数的都是父类,塞进去的都是子类

向下转型

Pet pt = new Dog("大红");
Dog dog = (Dog)pt;
dog.look();

向下转为个体,穿上衣服获得个体特征

Dog dog = (Dog)pt;

6.不能被继承的父类成员

一、private

二、子类与父类在不同包

三、构造方法

7.权限

public: 公共权限:被public修饰 的成员,可以在任何一个类中被调用,不管同包或不同包 ,是权限最大的一个修饰符。

private: 私有权限:被private修饰 的成员,只能在定义它们的类中使用,在其他类中不能调用

default: 默认权限(包权限):默认权限即同包权限,同包权限的元素只能在定义它们的类中,以及同包的类中被调用

protected: 受保护权限:

8.关键字final

final:是最终变量的意思,只可以用不可以改(全小写)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值