Java中 extends 和implement,构造方法和初始化方法

 Extends继承相关


public class Animal {
	public static void main(String[] args) {
		Dog dog=new Dog("Tom");   //DOg已经有了有参构造方法,在用无参,则会出错
		dog.shout();
	}
	public Animal() {              
		System.out.println("这是所有动物的初始化");
	}
	public void shout() {
		System.out.println("所有动物的叫声");
	}
}
class Dog  extends Animal{
	public String name;

	public Dog(String name) {   //子类继承,不管是有参还是无参,都会默认super()
                                //此处有个默认的super();  
		this.name=name;         //子类的构造,在super(),的基础上增强
	}
	
	public void shout() {
		System.out.println("汪汪汪"+name);   //子类方法,直接重写
	}
}

抽象类和接口implement

 abstract class Animal{     //定义抽象类     
    abstract int shout(); //抽象方法,没有方法体
 }    

 //方法是抽象的,类也是抽象的
 //类是抽象的,方法不一定是抽象的
 


 interface Animal{   定义接口
    int ID=1;        //定义全局常量
    void breath();     //抽象方法

}
 

构造方法和初始化方法

初始化:  {    
                //用来初始化对象属性,先于构造方法执行。可以用来初始化无参构造方法的属性
            }
构造方法: new类 (): 实例化类的对象,
                   后于初始化执行,由初始化方法初始的值会被,可能会被有参构造覆盖

public class Student {         
	private String name;
	public Student() {         
		System.out.println("无参构造方法"+name+age+flag);
	}
	
	public Student(String name){
		this.name=name;          
		this.name="20";
		System.out.println("实例化方法"+name);     //输出 形参(name)的值 
		System.out.println("实例化方法"+this.name); //输出当对象 this.name 的值
	}
	
	{
		System.out.println("初始化");  //比构造方法先执行,用于初始化
                                       //没有初始化方法,则 默认 int :0
                                                               String : null
                                                               boolean : false
	}
	static {
		System.out.println("静态方法");  //只执行一次
	}
	public static void main(String[] args) {
		Student student=new Student("hanke");
		Student student2=new Student();
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值