1:继承的定义:

  Java继承是面向对象的最显著的一个特征。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。

2:关键字: extends :继承

3:格式形式: public class A extends B {}  A:代表子类   B:代表父类 

4:子类可继承父类的public,protected成员。

5:java中的继承是单继承的,具有单根性,传递性。所以一个类就只有一个父类。

6:方法重写:

  其规则:

  1:子类的返回值类型,方法名,参数列表必须和父类的相同;

  2:访问修饰符必须大于父类修饰符的范围;

  3:子类重写的异常不能抛出的比父类多。

与之区别的   方法重载

 规则:在一个类中有两个及以上的方法名相同,参数列表不同的。

7:super 关键字:父类 超类

8:final 关键字

  1:final类:没有子类,不能被继承

  2:final方法:不能被重写

  3:final常量:常量值不能被修改

9:继承的优点:

  1: 代码的重用性

  2:父类的方法和属性可以用于子类

  3:设计应用程序变得简单

  4:子类可继承父类的属性和方法

10:实例化过程

:继承的练习:

1. 创建宠物类,宠物有名称,健康值,与主人亲密值的属性

2. 创建狗类,狗有名称,健康值,与主人亲密值,品种的属性

3. 创建企鹅类,企鹅有名称,健康值,与主人亲密值,性别的属性

4. 创建狗对象,打印出狗的基本信息

5. 创建企鹅对象,打印企鹅的基本信息

6. 添加宠物叫的方法,测试打印狗和企鹅的叫的方法,如狗是“汪汪汪”的叫,企鹅是“咕咕咕”的叫

 

分析:

 宠物类  狗类  企鹅类   狗类和企鹅类继承了宠物类的名称,健康值,与主人亲密值的属性

代码:

package com.lovo.exercise;
/**
 * 宠物类
 * 
 * @author Administrator
 *
 */
public abstract class Pet { private String name;
 private int health;
 private int love; public Pet() {
 super();
 System.out.println("Pet构造器中");
 } public Pet(String name, int health, int love) {
 this.name = name;
 this.health = health;
 this.love = love;
 } public String getName() {
 return name;
 } public void setName(String name) {
 this.name = name;
 } public int getHealth() {
 return health;
 } public void setHealth(int health) {
 this.health = health;
 } public int getLove() {
 return love;
 } public void setLove(int love) {
 this.love = love;
 } public String toString() {
 return "Pet [name=" + name + ", health=" + health + ", love=" + love+ "]";
 }

 public abstract void shout();}
 
//狗类
package com.lovo.exercise;
/**
 * 狗
 * 
 * @author Administrator
 *
 */
public class Dog extends Pet { private String strain; // 品种
 public Dog() {
 System.out.println("Dog构造器中");
 } public Dog(String name, int health, int love, String strain) {
 super(name, health, love);
 this.strain = strain;
 } public String getStrain() {
 return strain;
 } public void setStrain(String strain) {
 this.strain = strain;
 } public String toString() {
 return super.toString() + "\nDog [strain=" + strain + "]";
 } public void shout() {
 System.out.println("汪汪汪");
 }
}//企鹅类
package com.lovo.exercise;
/**
 * 企鹅
 * 
 * @author Administrator
 *
 */
public class Penguin extends Pet {
 private String sex; public Penguin() {
 } public Penguin(String name, int health, int love, String sex) {
 super(name, health, love);
 this.sex = sex;
 } public String getSex() {
 return sex;
 } public void setSex(String sex) {
 this.sex = sex;
 } @Override
 public String toString() {
 return super.toString() + "\nPenguin [sex=" + sex + "]";
 }

 public void shout(){
 System.out.println("咕咕咕");
 }
} 
//测试
package com.lovo.exercise;
public class Test {
 public static void main(String[] args) {

 Dog dog = new Dog("小白", 88, 99, "雪拉瑞");
 System.out.println(dog);
 dog.shout();
 System.out.println("**********************");
 Penguin pen = new Penguin("Q妹妹", 88, 99, "女");
 System.out.println(pen);
 pen.shout();}
}

二、使用抽象类抽象方法完成

 

java如何继承方法 java中继承的规则_System

汽车有车牌号、品牌 属性

轿车有型号属性

客车有座位数属性