1. 继承
1.1 现实生活当中有很多继承关系,例如:1.2概念
Java 使用extends 来实现继承的
语法
class SubClassName extends SuperClassName{
…
}
通过继承,子类自动拥有父类的所有属性和方法
Java 只支持单根继承
Java 通过接口实现多重继承的语义
1.3 目的
重用
1.4 继承还是组合
Java中的重用
继承
继承关系是一种”is -a”关系
组合
组合关系是一种”has-a”关系
在使用重用时我们优先考虑组合其次是继承
1.5 规则
构造方法不能被继承
方法和属性可以被继承
子类的构造方法自动调用父类的默认构造方法
当父类没有默认的构造方法时,子类必须显示调用父类的构造方法
1.6 实例
父类 Animal.java
package com.geek99.demo;
public class Animal {
private int aid;
private String name;
private int age;
protected int pid;
// ctrl+/
// public Animal(){
// System.out.println("Animal...");
// }
public Animal(int aid,String name,int age){
System.out.println("Animal...");
this.aid = aid;
this.name = name;
this.age = age;
}
public int getAid() {
return aid;
}
public void setAid(int aid) {
this.aid = aid;
}
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 void display(){
String msg = aid+","+name+","+age;
System.out.println(msg);
}
}
子类Dog.java
package com.geek99.demo;
public class Dog extends Animal{
public Dog(){
// 调用父类默认的构造方法
//super();
super(1,"hua hua",2);
System.out.println("Dog...");
}
void test(){
super.pid = 100;
}
}
测试类Test.java
package com.geek99.demo;
public class Test {
public static void main(String[] args) {
Dog dog = new Dog();
dog.setAid(1);
dog.setName("huahua");
dog.setAge(2);
dog.display();
}
}
原文出处:
该博客教程视频地址: