子类可以继承父类的哪些成员(根据访问修饰符判断)
1.父类的成员使用public修饰,子类可以继承。
2.父类的成员使用protected修饰,子类可以继承,即使子类和父类不在同一个包中。
3.如果父类和子类在同一个包中,此时子类可以继承父类中缺省修饰符的成员。
4.父类的成员使用private修饰,子类不能继承,因为private修饰的成员只能在本类中访问。
5.父类的构造器子类不能继承,因为构造器必须和类名相同。
附:JAVA中修饰符访问权限图
子类初始化过程:创建子类对象的过程
在创建子类对象之前会先创建父类对象。
调用子类构造器之前,在子类构造器中会先调用父类构造器,默认调用父类无参构造器。
1.如果父类不存在可以被子类调用的构造器,则不能存在子类。
2.如果父类没有提供无参构造器,则子类必须使用super语句去调用父类带参构造器。
必须现有父类对象,才有子类对象。
必须先调用父类构造器,再去调用子类构造器。
package com.sutu; //子类初始化演示 class Animal { private String name; private int age; Animal(String name,int age) { System.out.println("父类构造器"); this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } } class Fish extends Animal { private String color; Fish(String name,int age,String color) { super(name,age); //调用父类构造器 this.color = color; } public void say() { System.out.println(getName()+","+getAge()+","+this.color); } } public interface SubClassInitDemo { public static void main(String[] args){ Fish f1 = new Fish("abc",1,"red"); f1.say(); } }
父类构造器 abc,1,red