面向对象--继承

继承

1.概念

类是对对象的抽象,继承是对某一批类的抽象,从而实现对现实世界更好的建模。
提高代码的复用性!
extends的意思是“扩展”。子类是父类的扩展
不同的叫法:超类、父类、基类、子类、派生类

2.概念2(小结)

  1. 子类继承父类的成员变量和成员方法,但不继承父类的构造方法
  2. java中只有单继承 ,没有像c++那样的多继承。
  3. 如果定义一个类时,没有调用extends,则它的父类是:java.lang.Object
  4. 继承有传递性 

b继承于a,c继承于b,则c可以使用a里的成员变量和成员方法。

3.如何使用继承

写法顺序为:

私有成员变量或成员变量+构造方法+普通方法+设置器和访问器。

 

public class Pet {
	private String name;
	private int age;
	private int health;
	
	public Pet(String name, int age, int health) {
		super();
		this.name = name;
		this.age = age;
		this.health = health;
	}
	public Pet() {
		super();
		// TODO Auto-generated constructor stub
	}
	public void eat() {
		System.out.println("宠物在吃饭");
	}
	public void sleep() {
		System.out.println("宠物在睡觉");
	}
	public void play() {
		System.out.println("宠物在玩游戏");
	}
	
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public int getHealth() {
		return health;
	}
	public void setHealth(int health) {
		this.health = health;
	}
	
	
}

 

public class Cat extends Pet{
	private String color;
	public Cat() {
	}
	public Cat(String name, int age, int health, String color) {
		super(name, age, health);
		this.color = color;
	}

	public String getColor() {
		return color;
	}
	public void setColor(String color) {
		this.color = color;
	}
	
	
}

 4.哪些不能被继承的父类成员(private和构造方法都可以通过构造方法和super关键字进行调用。

 

 private成员:其实是可以被继承的,也可以说这个属性也是放到子类在堆中的内存里面去了,但是你是没法操作的,系统不会让你去操作这个属性的。

从父类继承过来的成员变量子类不能直接初始化,要用调用父类构造方法,用super调用。

构造方法:一般用super()调用父类的构造方法。

java,子类继承父类,在子类中,用this和super调用父类方法有什么区别

当有相同的属性或者方法是this子类表示调用自己的属性或者方法,

super调用父类的属性或者方法。

当子类调用的属性方法在子类中不存在时,那么this和super都是调用父类的属性或者方法

 

posted @ 2019-09-28 11:54  我今天也很帅  阅读(99)  评论(0)    收藏  举报