09-修饰符,object,抽象,接口

09-修饰符,object,抽象,接口

  • Object : java中所有类的父类(超类,基类)
    1. java.lang —> 系统默认导入
    2. toString() : 输出的是对象的地址 info
    3. equals() : 比较的是内容(重写了equals方法的作用是设置你想要的比较内容,补充协议的话比较的内存地址)
public class ObjectTest {

	public static void main(String[] args) {
		String name = "起源";
		String name2 = "起源";
		
		//创建对象
		Student s1 = new Student("可乐", 12, "男", 101);
		Student s2 = new Student("可乐", 12, "男", 101);
		System.out.println(s1);    //相当于s1.toString()
		System.out.println(s1.toString());
		System.out.println(s1==s2);      //比较的是地址
		System.out.println(s1.equals(s2));   //比较的是内容
		System.out.println(name == name2);  //比较的内容
		System.out.println(name.equals(name2));  //比较的内容	
	}
}
  • 抽象类:
    1. 如果一个类中含有抽象方法,那么这个类就一定是个抽象类
    2. 抽象类可以没有抽象方法
    3. 抽象类不可以被实例化
    4. 抽象类中有构造方法,该构造方法是给子类创建对象用的
    5. 非抽象类可以继承一个抽象类,但是必须要重写类中的抽象方法
    6. final不能修饰抽象类
  • 抽象类的语法: class关键字前加abstract
  • 抽象方法: [修饰符] abstract 返回值类型 方法名();
public abstract class AbstractDemo {
	public void m1(){
		 System.out.println("wo shi beifang  wo chi mian ");
	}
	public abstract void m2();   //抽象方法   //硬性标准   
	public AbstractDemo(){   //无参构造
	}
}
  • 接口:
    1. 语法: 修饰符 Interface 接口名{ }
    2. 接口也是引用数据类型 , 可以等同看作是一个类
      1. 接口中只能有常量,抽象方法
      2. 接口其实是一个特殊的抽象类,特殊在接口是完全抽象的
      3. 接口中没有构造方法,不能被实例化
      4. 类是单季承,但是接口与接口之间是多继承
      5. 接口与类之间多实现,一个类可以实现多个接口
      6. 实现的关键字是: implements
      7. 是一个非抽线类实现一个接口时,必须实现接口中的所有方法
public class InterfaceTest implements Inter04,Inter03,Inter02{
	@Override
	public void m1() {
		// TODO Auto-generated method stub
		
	}
	@Override
	public void m4() {
		// TODO Auto-generated method stub
	
	}
}
package com.tz.interfacetest;
/**
 * 接口
 * @author Administrator
 *
 */
public interface Inter01 extends Inter02,Inter03,Inter04{

	public static final int A = 23;
	int b = 12;     //默认加final
	
	public void m1();
	
}
interface Inter02{
	public void m1();

}
interface Inter03{
	
	public void m1();
}
interface Inter04{
	public void m4();

}
  • 访问修饰符修饰属性和方法: 本类 同包子类 同包中其他类 不同包子类 不同其他类

    ​ public 1 1 1 1 1

    ​ protected 1 1 1 1 0

    ​ default 1 1 1 0 0

    ​ private 1 0 0 0 0

public class Father {   //父类
	
	private String name;   //被private修饰的属性只能在本类中使用
	int age;     //范围只在本包中
	protected double money;   //同包和不同的子类
	public String gender;   //公开访问	
	public void show(){	
		System.out.println("私有的:"+this.name);
		System.out.println("默认的"+age);
		System.out.println("受保护的:"+money);
		System.out.println("公开的"+gender);
	}	
}

猜你喜欢

转载自blog.csdn.net/qq_26270869/article/details/90024411