继承 ; A extends B;
就代表A继承了B; B类作为一个父类, A类作为一个子类;
定义: 子类继承父类的属性和方法;子类可拥有自己独有的属性和方法;
package com.lv.ext;
//生物
public class Organisa {
String name;
public void huozhe(){
}
}
package com.lv.ext;
//动物
//Animal extends Organisa 动物类继承生物类
//构造函数不能继承
public class Animal extends Organisa {
//私有的属性
private int number;
//私有的方法
private void test(){
}
public Animal(){
System.out.println("这个是Animal的构造方法");
}
public Animal(String name){
this.name=name;
System.out.println("这个是Animal带参数的构造函数");
}
public void eat(){
}
public void sleep(){
}
}
package com.lv.ext;
//蛇
public class Snake extends Animal {
//能不能吧Animal的构造方法继承过来? 不能
public Snake(){
}
public void pa(){
}
}
测试类:
package com.lv.ext;
public class Test1 {
public static void main(String[] args) {
Snake snake=new Snake();
//能使用snake.name?
snake.name="tom";
//这个方法是从的间接父类继承的
snake.huozhe();
//从父类继承2个方法
snake.eat();
snake.sleep();
//并且有自己独有的方法
snake.pa();
//私有的属性和方法不能被继承
//snake.number;//父类私有的属性
//snake.test();//父类私有的方法
//子类继承父类的所有的属性和方法;子类可以有自己独有的属性和方法
}
}
3种不可继承:
1: 构造方法;
2: private修饰的属性和方法;
3: 父子不在同一个包中,default修饰符的属性和方法;
继承时,创建子类对象;
定义: 在具有继承关系的对象创建中,构建子类对象会优先构建父类对象
package com.lv.son;
//生物类
public class ShengWu {
//生物的构造函数
public ShengWu(){
System.out.println("ShengWu的构造函数");
}
}
package com.lv.son;
public class Animal extends ShengWu{
public Animal(){
System.out.println("Animal的构造函数");
}
}
package com.lv.son;
public class Fish extends Animal{
public Fish(){
System.out.println("Fish的构造函数");
}
}
测试类
package com.lv.son;
public class Test {
public static void main(String[] args) {
Fish fish=new Fish();
}
}

访问修饰符
本类 同包 非同包子类 其他
private √ × × ×
default √ √ × ×
protected √ √ √ ×
public √ √ √ √
来源:https://www.cnblogs.com/dabu/p/12328113.html