java基础知识6-- 抽象类,抽象方法,接口,构造方法,类方法等易混淆的知识点
一.抽象类和抽象方法 (B 继承 抽象类A)
抽象类:有抽象方法的一定是抽象类
抽象方法:方法名前有abstract修饰,且方法没有方法体,即{},不需要实现任何功能,只是声明
1.抽象类中的方法有两种:
(1)抽象类中的普通方法,可以不必实现
(2)抽象方法,所属的抽象类被继承后,抽象方法必须被重写,除非是被抽象类继承,不必被
抽象类必须被继承,且抽象类不能被实例化,即抽象类A ,不能定义 A a=new A() ;
package Interface; /**
* Created by wyy on 2017/2/25.
*/
public class abstractTest { public static void main(String[] args) {
Person s = new Students(); //引用Students的对象
Person t = new Teacher();//引用Teacher的对象
s.f();
t.f(); //我是一个学生 我是一个老师
}
}
abstract class Person {
public abstract void f(); //声明一个抽象类
} class Students extends Person { //类Students继承抽象类
public void f() {
System.out.println("我是一个学生");
}
} class Teacher extends Person { //类Teacher继承抽象类
public void f() {
System.out.println("我是一个老师");
}
}
二. 接口(B implements interface A)
实现接口的类,必须要实现接口内定义的所有方法.
先定义一个接口类Like
package Interface; /**
* Created by wyy on 2017/2/22.
*/ public interface Like{
public void a();
public void b(); }
接口类 Hate
package Interface; /**
* Created by wyy on 2017/2/22.
*/
public interface Hate {
public void c();
public void d(); }
实现这两个接口,必须实现接口内的所有方法:
public class A implements Like,Hate {
@Override
public void a(){
System.out.println("this is a");
}
@Override
public void b() {
System.out.println("this is b");
}
@Override
public void c() {
System.out.println("this is c");
}
@Override
public void d() {
System.out.println("this is d");
}
}
三. 构造方法和类方法
- 方法名与类名相同;
- 不要返回类型(例如return、void等);
- 不能被static、final、native、abstract和synchronized修饰,不能被子类继承。
- 继承
- 重写(子类继承父类,但是有自己不同的方法处理)
- 父类引用指向子类对象
java基础知识6-- 抽象类,抽象方法,接口,构造方法,类方法等易混淆的知识点的更多相关文章
- Java基础知识(抽象类和接口)
一.抽象类 在了解抽象类之前,先来了解一下抽象方法.抽象方法是一种特殊的方法:它只有声明,而没有具体的实现.抽象方法的声明格式为: 1 abstract void fun(); 抽象方法必须用abst ...
- JAVA核心技术I---JAVA基础知识(抽象类和接口)
一:抽象类 (一)定义 类:属性(0或多个)+方法(0或多个)一个完整(健康)的类:所有的方法都有实现(方法体)类可以没有方法,但是有方法就肯定要有实现,这才是一个完整的类一个完整的类才可以被实例化, ...
- java基础知识总结--继承和接口
什么是继承?什么是接口?他们之间的区别和联系是什么? 什么是继承? 继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能.多个类中存在相同属性和行 ...
- 十、Java基础---------面向对象之抽象类与接口
抽象类(abstract) 当编写一个类时,时常会为该类定义一些方法,这些方法的使用用以描述该类的行为方式,那么这些方法都有具体的方法体.但是在某些情况下,某个父类只是知道子类应该包含怎样的方 ...
- Java基础系列--06_抽象类与接口概述
抽象类 (1)如果多个类中存在相同的方法声明,而方法体不一样,我们就可以只提取方法声明. 如果一个方法只有方法声明,没有方法体,那么这个方法必须用抽象修饰. 而一个类中如果有抽象方法,这个类必须定义为 ...
- 【java基础 16】抽象类和接口的区别
导读:前两天闲着没事儿,看了本书,然后写了点代码,在接口里面写了默认方法实现,因为书上说这个特性是从java8开始的,我还特地给测了一下java7. 没过几天,就有一个技术分享会,刚好也是讲java8 ...
- Java基础5:抽象类和接口
本文主要介绍了抽象类和接口的特性和使用方法. 具体代码在我的GitHub中可以找到 https://github.com/h2pl/MyTech 文章首发于我的个人博客: https://h2pl.g ...
- java基础知识小总结【转】
java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程 ...
- Java 基础知识(一)
Java基础知识篇: 一.关键字解释 1. final:修饰非抽象类,非抽象方法和属性, 以及修饰方法参数,代表“无法改变的”.出于对设计或者效率的考虑使用该关键字. final类无法被继承,fina ...
随机推荐
- 基于spring mvc的图片验证码实现
本文实现基于spring mvc的图片验证码,分后台代码和前端页面的展现以及验证码的验证. 首看后台实现代码: @RequestMapping({"authCode"}) publ ...
- Wo Wei Shen Me Hui Zai cnblogs Xie Bo Ke
我为什么会在cnblogs上写博客.. CSDN上我上传过代码被很多网友下载过.CSDN我申请过博客.也写过几篇博客. 开源中国 我上传过代码.代码也被网友下载过.OSChina我申请过博客.也写过几 ...
- JavaScript 学习笔记 - LocalStorage
前言 本文主要介绍本地存储的基本使用,以及它和 Cookie.SessionStorage 的区别. 简单回顾 Cookie 在 HTML5 之前,本地存储数据一般是通过 Cookie 来完成的.我们 ...
- 基于hdp2.5升级phoenix版本为4.8
hdp2.5自带的phoenix是4.7的,而客户的驾驶舱项目跑在4.7的phoenix上是有问题的,如:如果表中没有数据,执行select count(*) from 表,返回的是空,这时导致驾驶舱 ...
- python基础教程(七)
本章介绍如何将语句组织成函数,这样,可以告诉计算机如何做事. 下面编写一小段代码计算婓波那契数列(前两个数的和是第三个数) fibs = [0,1] # 定义一个列表,初始内容是0,1 for i ...
- [2013-02-22]info入门FAQ
linux相关的东西,入门最快捷,最通用的方式无非查阅帮助文档. man命令很好理解,就不讲了,这里就提几个info相关的FAQ(也就3点啦) 基本操作,如何入门info 首先,输入info命令 ,进 ...
- Appium环境搭建(python)
appium是一个开源的,适用于原生或者移动网络和混合应用程序在 iOS 和 Android 平台上的的开源自动化测试框架.在这里,详细的介绍Appium的环境搭建步骤. 1.安装Node.js在ht ...
- Spark Submit 脚本
当我们需要命令行传递参数时候,将--class 写在前面,然后是jar 最后是参数 spark-submit --master yarn --num-executors 3 --executor-me ...
- 【转义字符】HTML 字符实体< >: &
在开发中遇到javascript从后台获取的url 会被转义,如:http://localhost:8080/Home/Index?a=14&b=15&c=123,想把它转成http: ...
- 第3阶段——内核启动分析之创建si工程和分析stext启动内核函数(4)
目标: (1)创建Source Insight 工程,方便后面分析如何启动内核的 (2)分析uboot传递参数,链接脚本如何进入stext的 (3) 分析stext函数如何启动内核: (3.1) ...