面向对象的特征-------继承
继承
1.提高了代码的重用性,子类继承了父类的所有属性和方法,所以子类不再重复定义
2.提高了代码的可扩展性,子类可以写自己独特的属性和方法,在父类的基础上进行扩展
继承的语法:
[ 修饰符] class 类名 extends 父类 impleemeents 接口{
继承的说明
1.子类继承了父类的所有属性和方法,只不过只能调用父类的非private(私有的)属性和方法
2.java中的继承只支持单继承,意思就是说一个子类只能继承一个父类,但允许多层继承
3.父类的无参构造器方法,子类也可以继承
4.利用super调用父类的有参构造器,加上super指父类的方法,不加super指的是子类的方法
//人类----父类
public class Person {
String name;
int age;
//无参构造器方法
public Person() {
System.out.println("我是人类里面的无参构造器方法!");
}
//有参构造器方法
public Person(String name) {
super();
this.name=name;
System.out.println("我是父类的有参构造器方法!");
}
public void eat() {
System.out.println("吃饭!");
}
}
//男人类-----子类
/**
* extends ---继承的关键字 只能写一个类名
* 继承的语法 public class Man extends java0420{}
* 一个父类可以有多个子类,父类可以被多个子类继承
* 无参构造器方法也是遗产,也可以继承
*/
public class Man extends Person{
String name;
char sex;
//无参构造器方法
public Man() {
System.out.println("我是Man里面的无参构造器方法!");
}
//有参构造器方法
public Man(char sex) {
/**
* super关键字
* 超级的
* 利用super调用父类的有参构造器方法
* 加上super指父类的方法,不加super指的是子类的方法
*/
//利用super调用父类的有参构造器
super("张三");
this.sex=sex;
System.out.println("我是子类的有参构造器方法!");
}
public void hair() {
System.out.println("男生一般都是短发!");
}
}
//测试类
public class test {
public static void main(String[] args) {
Man m=new Man();
M1.hair();
m1.age=18;
M1.eat();
}
}