Java 类和对象、继承

三大特征(封装、继承、多态)

小知识点:
1.boolean是基本类型,但是不能和其他七种类型相互转化

2.接口类可以为数组元素 ???
3.一个普通类实现接口,就要实现接口中所有的抽象方法

4.在一个类内,静态方法不能直接调用非静态方法
5.通过对象名可以访问静态成员。
6.通过类名不能访问实例成员(不加static修饰的成员)

补充:调用和访问两个概念
访问:不需要创建对象
调用:需要创建对象
1:静态方法只能访问静态-------------这里是访问,不是调用,
2:非静态方法可以访问静态,也可以访问非静态-------------这里也是访问,不是调用
3:静态方法可以通过类名.直接被调用,也可以通过对象来被调用-----这里是调用,不是访问
4:而非静态方法只能通过对象来调用-----这里也是调用,不是访问

7.自定义类时不允许定义如下方法public void toString() { }
8.子类中重写的的访问权限不可以低于父类中的访问权限

9.方法的重载:在同一个类中,出现多个同名方法,参数列表不同,与返回值类型、修饰符无关
10.方法的重写:子类中出现和父类中一模一样的方法(包括返回值类型,方法名,参数列表)11.this代表所在方法当前对象的引用

11.this关键字用于所在方法对当前对象的调用
12.super关键字存在于子类方法中,在子类中默认是访问父类的对象;可以访问父类的属性、函数及构造方法
(pulic>protected>默认>private)

13.引用类型的变量:类,接口,数组,String。若被final修饰,则引用变量引用不可变(地址),但是引用对象的内容可以改变。

14.抽象类型的方法不可以有方法体。
接口必须单独定义在一个类中吗???

  1. 接口要被子类实现;抽象类要被子类继承
  2. 接口中全为公共静态常量;而抽象类中可有不同变量
  3. 接口中全为抽象方法(只有声明);而抽象类中可有普通方法(可有实现)
  4. 接口中不可以有构造函数;而抽象类中可以有构造函数
  5. 接口可以为多实现;而抽象类只能单继承

在这里插入图片描述

public class test{
	public static void main(String[] args) {
		T t=new T();
		t.fun1();
		t.fun2();
	}
}
class T implements t1{

	@Override
	public void fun1() {
		System.out.println("运行fun1");
	}
	@Override
	public void fun2() {
		System.out.println("运行fun2");
	}
}

public interface t1 {
	int a=101;
	void fun1();
	void fun2();
}

15.多态问题:向上转型和向下转型


class Parent{
	void fun1()
	{
		System.out.println("i am parent!");
	}
}
class Son extends Parent{
	void fun1() {   //重写
		System.out.println("i am son");
	}
	void fun2() {
		System.out.println("son!!!");
	}
}
public class test{
	
	public static void main(String[] args) {
		Parent p1=new Son(); //向上转型(从右往左看)
		//父类引用指向子类对象,首先检查父类中是否有该方法;如果有,再去调用子类方法
		p1.fun1();
		
		Son p2=(Son)p1; //向下转型,实现子类的独有方法
		p2.fun2();
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值