1.类的继承
class Animal{
String name; //定义name属性
//定义动物叫的方法
void shout(){
System.out.println("动物发出叫声");
}
}
//定义Dog类继承Animal类
class Dog extends Animal{
//Dog继承Animal,extends为继承的关键词
//定义一个打印name的方法
public void printName(){
System.out.println("name="+name);
}
}
//定义测试分
public class Demo01 {
public static void main(String[] args) {
Dog dog = new Dog();
dog.name = "沙皮狗";
dog.printName();
dog.shout();
}
}
注意:
- 类只支持单继承,不允许多重继承,也就是一个类只能有一个直接父类。
class A()
class B()
class C extends A,B() //C类不可以同时继承两个父类
- 多个类可以继承一个父类。
- 多层继承是允许的。
- 子类和父类是相对的概念,也就是说一个类是某个类父类的同时,也可以是另一个类的子类。
2.重写父类方法
class Animal{
String name; //定义name属性
//定义动物叫的方法
void shout(){
System.out.println("动物发出叫声");
}
}
//定义Dog类继承Animal类
class Dog extends Animal{
//Dog继承Animal,extends为继承的关键词
//定义一个打印name的方法
void shout(){
System.out.println("bark...bark...");
}
}
public class Demo01 {
public static void main(String[] args) {
Dog dog = new Dog(); //重写Dog类的是咧对象
dog.shout(); //调用dog重写的shout()方法
}
}
注意:
- 子类会自动继承父类中的方法,但有时在子类中需要对继承的方法进行一些修改,即对父类方法进行重写。
- 在子类中重写的方法需要和父类被重写的方法具有相同的方法名、参数列表以及返回类型。
- 子类重写父类方法时,不能使用比父类中被重写的方法更严格的访问权限。
3.super关键字
为了解决:当子类重写父类的方法后,子类对象将无法访问父类被重写的方法。
- 使用super关键字来调用父类的成员变量和成员变量
super。成员变量
super,成员方法([参数1,参数2...])