JAVA-继承

子类可以继承父类的哪些成员(根据访问修饰符判断)

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


猜你喜欢

转载自blog.csdn.net/tommy5553/article/details/80769247